﻿using System;

namespace RootMotion.FinalIK
{
	// Token: 0x02000154 RID: 340
	public abstract class IK : SolverManager
	{
		// Token: 0x06000597 RID: 1431
		public abstract IKSolver GetIKSolver();

		// Token: 0x06000598 RID: 1432 RVA: 0x00018CF9 File Offset: 0x000170F9
		protected override void UpdateSolver()
		{
			if (!this.GetIKSolver().initiated)
			{
				this.InitiateSolver();
			}
			if (!this.GetIKSolver().initiated)
			{
				return;
			}
			this.GetIKSolver().Update();
		}

		// Token: 0x06000599 RID: 1433 RVA: 0x00018D2D File Offset: 0x0001712D
		protected override void InitiateSolver()
		{
			if (this.GetIKSolver().initiated)
			{
				return;
			}
			this.GetIKSolver().Initiate(base.transform);
		}

		// Token: 0x0600059A RID: 1434 RVA: 0x00018D51 File Offset: 0x00017151
		protected override void FixTransforms()
		{
			if (!this.GetIKSolver().initiated)
			{
				return;
			}
			this.GetIKSolver().FixTransforms();
		}

		// Token: 0x0600059B RID: 1435
		protected abstract void OpenUserManual();

		// Token: 0x0600059C RID: 1436
		protected abstract void OpenScriptReference();
	}
}
